跳到主要内容

BM22 比较版本号

https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7

package main

import (
"strconv"
"strings"
)

/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 比较版本号
* @param version1 string字符串
* @param version2 string字符串
* @return int整型
*/
func compare(version1 string, version2 string) int {
var res int
ver1Strs := strings.Split(version1, ".")
ver2Strs := strings.Split(version2, ".")
ver1Len := len(ver1Strs)
ver2Len := len(ver2Strs)
verLen := ver1Len
if len(ver1Strs) < len(ver2Strs) {
verLen = ver2Len
}

for i := 0; i < verLen; i++ {
var ver1Int, ver2Int int
if i < ver1Len {
ver1Int, _ = strconv.Atoi(ver1Strs[i])
}
if i < ver2Len {
ver2Int, _ = strconv.Atoi(ver2Strs[i])
}
if ver1Int < ver2Int {
res = -1
break
}
if ver1Int > ver2Int {
res = 1
break
}
}
return res
}

23/5/10

用时 20分钟

这题有点脑残,需要注意以下这个用例

用例输入 "0.226","0.38"
预期输出 1
说明:
226 > 36,version1 的下标 2 >version2 的下标 2,返回 1